package com.rockcent.service;

import com.rockcent.common.common.PageResult;
import com.rockcent.mall.lib.domain.MerchantOrder;
import com.rockcent.mall.lib.domain.Product;
import com.rockcent.mall.lib.domain.enumclass.ProductClientType;
import com.rockcent.mall.lib.dto.EvaluationDto;
import com.rockcent.mall.lib.dto.ProductDto;

import java.util.List;

/**
 * Created by zhangjh on 2017/1/23.
 */
public interface ProductSrv {

    /**
     *
     * @param customerDtoId
     * @param evaluationDto
     * @param merchantOrder
     */
    void addEv(Long customerDtoId, EvaluationDto evaluationDto, MerchantOrder merchantOrder);

    PageResult<ProductDto> findProducts(Long mallId, String type, String productSourceType, String merchantName, String keyword, List<Long> categoryIds, PageResult pageResult);

    PageResult<ProductDto> findExplosionProducts(Long mallId, String type, ProductClientType productClientType, String merchantName, String keyword, PageResult pageResult, String sortByName, String sort);

    void saveExplosionProduct(Long mallId, List<Long> productIds);

    void delExplosionProduct(Long mallId, List<Long> productIds);

    PageResult<Product> findMiniExplosionProducts(Long mallId, ProductClientType productClientType, PageResult pageResult);

    Product findOne(Long productId);
    
}
